package com.ygqh.baby.model;

import java.io.Serializable;
import java.util.Date;
import java.util.LinkedList;

import org.springframework.data.mongodb.core.mapping.Document;

import com.ygqh.baby.ao.CustomerStatus;
import com.ygqh.baby.ao.DataStatus;

/**
 * 客服人员
 * @author Ss
 *
 */
@Document(collection = "ADMIN_CUSTOMER_USER")
public class CustomerUser implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 9194042798989884815L;

	private String id;
	
	/**
	 * 用户名
	 */
	private String userName;
	
	/**
	 * 客服昵称
	 */
	private String nickName;
	
	/**
	 * 真是姓名
	 */
	private String trueName;
	
	/**
	 * 接待比例
	 */
	private Double receptionRatio;
	
	/**
	 * 客服头像
	 */
	private String headFileId;
	
	/**
	 * 接待用户集
	 */
	private LinkedList<YgUserModel> userList = new LinkedList<>();
	
	/**
	 * 接待用户id集
	 */
	private LinkedList<Long> userIdList = new LinkedList<>();

	/**
	 * 创建时间
	 */
	private Date createTime;
	
	/**
	 * 创建人
	 */
	private String createBy;

	/**
	 * 修改时间
	 */
	private Date updateTime;
	
	/**
	 * 修改人
	 */
	private String updateBy;
	
	/**
	 * 在线状态
	 */
	private CustomerStatus customerStatus = CustomerStatus.Offline;

	/**
	 * 状态
	 */
	private DataStatus status = DataStatus.Valid;
	
	/**
	 * 是否为默认客服
	 */
	private Boolean isDefault = Boolean .FALSE;

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getNickName() {
		return nickName;
	}

	public void setNickName(String nickName) {
		this.nickName = nickName;
	}

	public Double getReceptionRatio() {
		return receptionRatio;
	}

	public void setReceptionRatio(Double receptionRatio) {
		this.receptionRatio = receptionRatio;
	}

	public String getHeadFileId() {
		return headFileId;
	}

	public void setHeadFileId(String headFileId) {
		this.headFileId = headFileId;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public String getCreateBy() {
		return createBy;
	}

	public void setCreateBy(String createBy) {
		this.createBy = createBy;
	}

	public DataStatus getStatus() {
		return status;
	}

	public void setStatus(DataStatus status) {
		this.status = status;
	}

	public LinkedList<YgUserModel> getUserList() {
		return userList;
	}

	public void setUserList(LinkedList<YgUserModel> userList) {
		this.userList = userList;
	}

	public CustomerStatus getCustomerStatus() {
		return customerStatus;
	}

	public void setCustomerStatus(CustomerStatus customerStatus) {
		this.customerStatus = customerStatus;
	}

	public LinkedList<Long> getUserIdList() {
		return userIdList;
	}

	public void setUserIdList(LinkedList<Long> userIdList) {
		this.userIdList = userIdList;
	}

	public Boolean getIsDefault() {
		return isDefault;
	}

	public void setIsDefault(Boolean isDefault) {
		this.isDefault = isDefault;
	}

	public String getTrueName() {
		return trueName;
	}

	public void setTrueName(String trueName) {
		this.trueName = trueName;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	public String getUpdateBy() {
		return updateBy;
	}

	public void setUpdateBy(String updateBy) {
		this.updateBy = updateBy;
	}

	public String getUserName() {
		return userName;
	}

	public void setUserName(String userName) {
		this.userName = userName;
	}

	@Override
	public String toString() {
		return "CustomerUser [id=" + id + ", nickName=" + nickName + ", trueName=" + trueName + ", receptionRatio=" + receptionRatio
				+ ", headFileId=" + headFileId + ", userIdList=" + userIdList + ", createTime=" + createTime + ", createBy=" + createBy + ", updateTime="
				+ updateTime + ", updateBy=" + updateBy + ", customerStatus=" + customerStatus + ", status=" + status + ", isDefault=" + isDefault
				+ ", userName=" + userName + "]";
	}

}
